home *** CD-ROM | disk | FTP | other *** search
/ World of Video / World of Video.iso / gfxprograms / 3dprograms / t3dlib / source / tddd2off.c < prev    next >
C/C++ Source or Header  |  1995-02-13  |  1KB  |  59 lines

  1. /* tddd2off.c - convert TDDD (or TTDDD) file to OFF file
  2.  *            - written by Glenn M. Lewis - 10/29/91
  3.  */
  4.  
  5. static char rcs_id[] = "$Id: tddd2off.c,v 1.5 1993/02/14 17:44:16 glewis Exp $";
  6.  
  7. #include <stdio.h>
  8. #include "t3dlib.h"
  9. #ifdef __STDC__
  10. #include <stdlib.h>
  11. #include <strings.h>
  12. #include "tddd2off_protos.h"
  13. #endif
  14.  
  15. main(argc, argv)
  16. int argc;
  17. char *argv[];
  18. {
  19.     char filename[256], rootname[256], *c1, *c2;
  20.     int i;
  21.     WORLD *world;
  22.     FILE *inp;
  23.     int split = 0, geom_only = 0;
  24.  
  25.     rootname[0] = filename[0] = '\0';
  26. /*    strcpy(rootname, "model");    ** The default for reading stdin */
  27.     for (i=1; i<argc; i++) {
  28.         if (argv[i][0] == '-') {
  29.             switch(argv[i][1]) {
  30.                 case 's':    split = 1; break;
  31.                 case 'g':    geom_only = 1; break;
  32.                 case 'h':
  33.                 default:
  34.         fprintf(stderr, "Usage: %s [-geom_only] [-split] [infile] [outfile]\n",
  35.                 argv[0]);
  36.                 exit(-1);
  37.             }
  38.         } else if (filename[0]) {
  39.             strcpy(rootname, argv[i]);
  40.         } else {
  41.             strcpy(filename, argv[i]);    /* Make root of filename the default */
  42.             for (c1=rootname,c2=argv[i]; (*c1 = *c2++) && *c1!='.'; c1++) ;
  43.             *c1 = '\0';
  44.         }
  45.     }
  46.  
  47.     if (!filename[0]) inp = stdin;
  48.     else if (!(inp = fopen(filename, "r"))) {
  49.         fprintf(stderr, "Can't open '%s' for input.\n", filename);
  50.         exit(-1);
  51.     }
  52.  
  53.     world = read_World(inp);
  54.     write_OFF(world, rootname, split, geom_only);
  55.     free_World(world);
  56.     exit(0);
  57. }
  58.  
  59.